/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.msk.wlhy.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.msk.base.domain.goods.Goods;
import com.msk.common.utils.DateUtils;
import com.msk.common.utils.DictUtils;
import com.msk.sys.domain.DataEntity;
import com.msk.sys.domain.Office;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.validator.constraints.Length;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;

/**
 * <p>[]</p>
 * <p>作者：zkp</p>
 * <p>邮箱：zkp@xiangyou.com</p>
 * <p>创建时间： 2018-06-07 </p>
 * <p>类说明：物流订单明细Entity </p>
 * <p>修改记录：</p>
 */
public class HtLogisticsOrderDetail extends DataEntity<HtLogisticsOrderDetail> {
	
	private static final long serialVersionUID = 1L;
	private Office company;
	private Office office;
	private String orderId;
	private String goodsName;
	private Double goodsWeight;
	private Double realGoodsWeight;
	private Double goodsVolume;
	private String goodsType;
	private Double goodsNumber;
	private String consigner;
	
    private String consignerName;
	private String consignerNumber;
	private String consignee;
	
    private String consigneeName;
	private String consigneeNumber;
	private Double freight;//运费
	private String loadingArea;
	private String loadingAreaName;
	private String loadingPlace;
    //总价
    private String allPrice;
    //车辆是否有要求
	private String vehicleRequire;
	private String carClaim;
	private String carLoad;
	private String carLong;
	private String carType;

	private String surplusPrice;

	public String getCarLong() {
		return carLong;
	}

	public void setCarLong(String carLong) {
		this.carLong = carLong;
	}

	public String getCarType() {
		return carType;
	}

	public void setCarType(String carType) {
		this.carType = carType;
	}

	public String getConsignerUserTwo() {
		return consignerUserTwo;
	}

	public void setConsignerUserTwo(String consignerUserTwo) {
		this.consignerUserTwo = consignerUserTwo;
	}

	public String getConsignerNumberTwo() {
		return consignerNumberTwo;
	}

	public void setConsignerNumberTwo(String consignerNumberTwo) {
		this.consignerNumberTwo = consignerNumberTwo;
	}

	public String getConsigneeUser() {
		return consigneeUser;
	}

	public void setConsigneeUser(String consigneeUser) {
		this.consigneeUser = consigneeUser;
	}

	public String getConsigneeUserTwo() {
		return consigneeUserTwo;
	}

	public void setConsigneeUserTwo(String consigneeUserTwo) {
		this.consigneeUserTwo = consigneeUserTwo;
	}

	public String getConsigneeNumberTwo() {
		return consigneeNumberTwo;
	}

	public void setConsigneeNumberTwo(String consigneeNumberTwo) {
		this.consigneeNumberTwo = consigneeNumberTwo;
	}
	private HtTransportList transportList;
	private String unloadingArea;
	private String unloadingAreaName;
	private String unloadingPlace;
	private String status;
	private String attstr01;
	private String attstr02;
	private String attstr03;
	private String attstr04;
	
	private String attstr05;
	
	private Date attdate01;
	private Date attdate02;
	private String delFlagAlias;		// 转换后的del_flag

	private String orderNo;

	private String goodsTypeAlias;

	private String attstr05Alias;
	
	private String isCheckRealWeigth;//是否过来实际拉货重量大于等于订单明细中的货物重量
	private String officeIds;
	private String customerName;
	private String customer;

	private String attstr03Alias;
	private String isOverrun; //是否允许超运
	private String isOverrunAlias;//是否允许超运字典显示
	private String isOverload; //是否允许超载
	private String textRate; //税率
	private String rateMoney; //税额
	private String outRateMoney;//不含税金额
	private String otherFreight;//其他费用
	private String otherType;//其他费用类型
	private String otherTypeAlias;//其他费用类型转换后类型
	private String revicePrice;//含税金额
	private Double profit;//利润

	private String createByName; //创建人姓名

	private Date endTime;  //合同执行单结算时间

	private Date createDate1;

	public Date getCreateDate1() {
		return createDate1;
	}

	public void setCreateDate1(Date createDate1) {
		this.createDate1 = createDate1;
	}

	private HtCompanyCustomer consignUser;//托运人信息
	private HtSupplier supplier;//承运商

	private String consignUserName;//托运人信息
	private String supplierName;//承运人信息

	private String goodsSupplierUser;//物资供应商
	private Date goodsStartTime;//发货时间
	private Date goodsEndTime;//交货时间
	private String generateStatus;//生成状态0未生成1已生成
	private Date generateTime;//托运日期
	private String contractName;//合同名称
	private String contractNo;//合同编号
	private String orderType;//订单类型
	private String measureUnit;//计量单位
	private String distance;//运距
	private String validNum;//有效天数
	private String priceUnit;//计价单位
	private String priceUnitAlias;
	private String priceType;//报价方式 0:单价 1:总价
	private Date biddingEndTime;//竞价结束时间
	private String carTypeAlias;//车辆类型别名
	private Double totalPrice;//货物总价
	private String onlineOrderNum;//电商订单号
	private HtLogisticsFrame htLogisticsFrame;//合同
	private String comment;//备注

	public String getComment() {
		return comment;
	}

	public void setComment(String comment) {
		this.comment = comment;
	}

	public String getOnlineOrderNum() {
		return onlineOrderNum;
	}

	public void setOnlineOrderNum(String onlineOrderNum) {
		this.onlineOrderNum = onlineOrderNum;
	}

	public Double getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(Double totalPrice) {
		this.totalPrice = totalPrice;
	}

	public String getCarTypeAlias() {
		return carTypeAlias;
	}

	public void setCarTypeAlias(String carTypeAlias) {
		this.carTypeAlias = carTypeAlias;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getBiddingEndTime() {
		return biddingEndTime;
	}

	public void setBiddingEndTime(Date biddingEndTime) {
		this.biddingEndTime = biddingEndTime;
	}

	public String getPriceType() {
		if("0".equals(priceType)){
			return "单价";
		}else if("1".equals(priceType)) {
			return "总价";
		}
		return priceType;
	}

	public void setPriceType(String priceType) {
		this.priceType = priceType;
	}

	//以下五个字段为托运单统计使用
	private String allWeight;//已运重量
	private String allFreight;//已经结算
	private String statusAlias;//运输状态
	private String allMoney;//应结算金额
	private String toWeight;//未运重量
	private String companyCustomer;
	private String companyCustomee;

	//派车单增加发货公司名称，联系人，联系电话。收货公司名称，联系人，联系电话
	private String companyCustomerName; //发货企业
	private String companyCustomerNumber;//发货联系电话
	private String companyCustomerName1;//收货企业
	private String companyCustomerNumber1;//收货联系电话
	private String contacts; //发货联系人
	private String contacts1; //收货联系人
	private String transportDetailCount;

	private String publishWay;//货源发布方式

	private String publishWayAlias;

	private String paid;
	private String invoiceTotal;
	private String applyPaid;
	private String baseAccountBankAddr;
	private String baseAccountNo;
	private String unifiedSocialCode;
	private String baseAccountName;
	public String getPublishWayAlias() {
		if("1".equalsIgnoreCase(publishWay)){
			return "直接发布";
		}else if("2".equalsIgnoreCase(publishWay)){
			return "定向发布";
		}else if("3".equalsIgnoreCase(publishWay)){
			return "竞价模式";
		}else{
			return "";
		}
	}
	public void setPublishWayAlias(String publishWayAlias) {
		this.publishWayAlias = publishWayAlias;
	}

	public double contractPrice;//合同单价

	public double getContractPrice() {
		return contractPrice;
	}

	public void setContractPrice(double contractPrice) {
		this.contractPrice = contractPrice;
	}


	private String consignerUser;
	private String consignerUserTwo;
	private String consignerNumberTwo;
	private String consigneeUser;
	private String consigneeUserTwo;
	private String consigneeNumberTwo;

	private String platSupplierDocFile;//平台和承运商合同-doc
	private String platSupplierPdfFile;//平台和承运商合同-pdf

	//计价方式 1:吨/公里 2:整车';
	private String priceWay;
	private String priceWayAlias;
	//car_num需要整车数量
	private String carNum;

	private Goods goods;

	/**
	 * 部分导出使用
	 */
	private String[] idArray;

	public String getPublishWay() {
		return publishWay;
	}

	public void setPublishWay(String publishWay) {
		this.publishWay = publishWay;
	}

	public String getAllWeight() {
		return allWeight;
	}

	public void setAllWeight(String allWeight) {
		this.allWeight = allWeight;
	}

	public String getAllFreight() {
		return allFreight;
	}

	public void setAllFreight(String allFreight) {
		this.allFreight = allFreight;
	}

	public String getStatusAlias() {
		return statusAlias;
	}

	public void setStatusAlias(String statusAlias) {
		this.statusAlias = statusAlias;
	}

	public String getAllMoney() {
		return allMoney;
	}

	public void setAllMoney(String allMoney) {
		this.allMoney = allMoney;
	}

	public String getToWeight() {
		return toWeight;
	}

	public void setToWeight(String toWeight) {
		this.toWeight = toWeight;
	}

	public String getMeasureUnit() {
		return measureUnit;
	}

	public void setMeasureUnit(String measureUnit) {
		this.measureUnit = measureUnit;
	}

	public String getDistance() {
		return distance;
	}

	public void setDistance(String distance) {
		this.distance = distance;
	}

	public String getValidNum() {
		return validNum;
	}

	public void setValidNum(String validNum) {
		this.validNum = validNum;
	}

	public String getContractName() {
		return contractName;
	}

	public void setContractName(String contractName) {
		this.contractName = contractName;
	}

	public String getContractNo() {
		return contractNo;
	}

	public void setContractNo(String contractNo) {
		this.contractNo = contractNo;
	}

	public String getOrderType() {
		return orderType;
	}

	public void setOrderType(String orderType) {
		this.orderType = orderType;
	}

	public String getGenerateStatus() {
		return generateStatus;
	}

	public void setGenerateStatus(String generateStatus) {
		this.generateStatus = generateStatus;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getGenerateTime() {
		return generateTime;
	}

	public void setGenerateTime(Date generateTime) {
		this.generateTime = generateTime;
	}

	public HtCompanyCustomer getConsignUser() {
		return consignUser;
	}

	public void setConsignUser(HtCompanyCustomer consignUser) {
		this.consignUser = consignUser;
	}

	public HtSupplier getSupplier() {
		return supplier;
	}

	public void setSupplier(HtSupplier supplier) {
		this.supplier = supplier;
	}

	public HtTransportList getTransportList() {
		return transportList;
	}

	public void setTransportList(HtTransportList transportList) {
		this.transportList = transportList;
	}



	public String getConsignUserName() {
		return consignUserName;
	}

	public void setConsignUserName(String consignUserName) {
		this.consignUserName = consignUserName;
	}

	public String getSupplierName() {
		return supplierName;
	}

	public void setSupplierName(String supplierName) {
		this.supplierName = supplierName;
	}

	public String getGoodsSupplierUser() {
		return goodsSupplierUser;
	}

	public void setGoodsSupplierUser(String goodsSupplierUser) {
		this.goodsSupplierUser = goodsSupplierUser;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getGoodsStartTime() {
		return goodsStartTime;
	}

	public void setGoodsStartTime(Date goodsStartTime) {
		this.goodsStartTime = goodsStartTime;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getGoodsEndTime() {
		return goodsEndTime;
	}

	public void setGoodsEndTime(Date goodsEndTime) {
		this.goodsEndTime = goodsEndTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

	public String getCreateByName() {
		return createByName;
	}

	public void setCreateByName(String createByName) {
		this.createByName = createByName;
	}

	private Integer count;

	private double price;

	private String originalNumber;
	
	private String startCoordinate;
	
	private String endCoordinate;
	//运输单运费
	private String Tfreight;
	
	private Date startDateStart;
	private Date startDateEnd;

	//车牌
	private String carNumber;

	public HtLogisticsFrame getHtLogisticsFrame() {
		return htLogisticsFrame;
	}

	public void setHtLogisticsFrame(HtLogisticsFrame htLogisticsFrame) {
		this.htLogisticsFrame = htLogisticsFrame;
	}

	//add by wlxiang 20200826 货源编号
	private String goodsCode;
	private Double remainingGoodsWeight;
	public String getCarNumber() {
		return carNumber;
	}

	public void setCarNumber(String carNumber) {
		this.carNumber = carNumber;
	}

	//承运商
	private String suppName;

	public String getSuppName() {
		return suppName;
	}

	public void setSuppName(String suppName) {
		this.suppName = suppName;
	}

	@Length(min=0, max=255, message="开始位置坐标长度必须介于 0 和 255之间")
	public String getStartCoordinate() {
		return startCoordinate;
	}

	public void setStartCoordinate(String startCoordinate) {
		this.startCoordinate = startCoordinate;
	}

	@Length(min=0, max=255, message="结束位置坐标长度必须介于 0 和 255之间")
	public String getEndCoordinate() {
		return endCoordinate;
	}

	public void setEndCoordinate(String endCoordinate) {
		this.endCoordinate = endCoordinate;
	}
	
	
	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

	@Length(min=0, max=64, message="原始单号长度必须介于 0 和 64之间")
	public String getOriginalNumber() {
		return originalNumber;
	}

	public void setOriginalNumber(String originalNumber) {
		this.originalNumber = originalNumber;
	}

	public Integer getCount() {
		return count;
	}

	public void setCount(Integer count) {
		this.count = count;
	}

	public HtLogisticsOrderDetail() {
		super();
	}

	public HtLogisticsOrderDetail(String id){
		super(id);
	}

	@Length(min=0, max=100, message="订单id长度必须介于 0 和 100 之间")
	public String getOrderId() {
		return orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}
	
	@Length(min=0, max=100, message="货物名称长度必须介于 0 和 100 之间")
	public String getGoodsName() {
		return goodsName;
	}

	public void setGoodsName(String goodsName) {
		this.goodsName = goodsName;
	}
	
	public Double getGoodsWeight() {
		return goodsWeight;
	}

	public void setGoodsWeight(Double goodsWeight) {
		this.goodsWeight = goodsWeight;
	}
	
	public Double getRealGoodsWeight() {
		return realGoodsWeight;
	}

	public void setRealGoodsWeight(Double realGoodsWeight) {
		this.realGoodsWeight = realGoodsWeight;
	}
	
	public Double getGoodsVolume() {
		return goodsVolume;
	}

	public void setGoodsVolume(Double goodsVolume) {
		this.goodsVolume = goodsVolume;
	}
	
	@Length(min=0, max=10, message="货物类型长度必须介于 0 和 10 之间")
	public String getGoodsType() {
		return goodsType;
	}

	public void setGoodsType(String goodsType) {
		this.goodsType = goodsType;
	}

	public Double getGoodsNumber() {
		return goodsNumber;
	}

	public void setGoodsNumber(Double goodsNumber) {
		this.goodsNumber = goodsNumber;
	}

	@Length(min=0, max=50, message="发货联系人长度必须介于 0 和 50 之间")
	public String getConsigner() {
		return consigner;
	}

	public void setConsigner(String consigner) {
		this.consigner = consigner;
	}
	
	@Length(min=0, max=20, message="发货人联系电话长度必须介于 0 和 20 之间")
	public String getConsignerNumber() {
		return consignerNumber;
	}

	public void setConsignerNumber(String consignerNumber) {
		this.consignerNumber = consignerNumber;
	}
	
	@Length(min=0, max=50, message="收货人长度必须介于 0 和 50 之间")
	public String getConsignee() {
		return consignee;
	}

	public void setConsignee(String consignee) {
		this.consignee = consignee;
	}
	
	@Length(min=0, max=20, message="收货人联系电话长度必须介于 0 和 20 之间")
	public String getConsigneeNumber() {
		return consigneeNumber;
	}

	public void setConsigneeNumber(String consigneeNumber) {
		this.consigneeNumber = consigneeNumber;
	}
	
	public Double getFreight() {
		return freight;
	}

	public void setFreight(Double freight) {
		this.freight = freight;
	}
	
	@Length(min=0, max=150, message="装货区域长度必须介于 0 和 150 之间")
	public String getLoadingArea() {
		return loadingArea;
	}

	public void setLoadingArea(String loadingArea) {
		this.loadingArea = loadingArea;
	}
	
	@Length(min=0, max=150, message="loading_area_name长度必须介于 0 和 150 之间")
	public String getLoadingAreaName() {
		return loadingAreaName;
	}

	public void setLoadingAreaName(String loadingAreaName) {
		this.loadingAreaName = loadingAreaName;
	}
	
	@Length(min=0, max=100, message="装货地点长度必须介于 0 和 100 之间")
	public String getLoadingPlace() {
		return loadingPlace;
	}

	public void setLoadingPlace(String loadingPlace) {
		this.loadingPlace = loadingPlace;
	}
	
	@Length(min=0, max=150, message="卸货区域长度必须介于 0 和 150 之间")
	public String getUnloadingArea() {
		return unloadingArea;
	}

	public void setUnloadingArea(String unloadingArea) {
		this.unloadingArea = unloadingArea;
	}
	
	@Length(min=0, max=150, message="unloading_area_name长度必须介于 0 和 150 之间")
	public String getUnloadingAreaName() {
		return unloadingAreaName;
	}

	public void setUnloadingAreaName(String unloadingAreaName) {
		this.unloadingAreaName = unloadingAreaName;
	}
	
	@Length(min=0, max=100, message="卸货地点长度必须介于 0 和 100 之间")
	public String getUnloadingPlace() {
		return unloadingPlace;
	}

	public void setUnloadingPlace(String unloadingPlace) {
		this.unloadingPlace = unloadingPlace;
	}
	
	@Length(min=0, max=10, message="1待发运2发运中3完成4超额长度必须介于 0 和 10 之间")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	@Length(min=0, max=200, message="attstr01长度必须介于 0 和 200 之间")
	public String getAttstr01() {
		return attstr01;
	}

	public void setAttstr01(String attstr01) {
		this.attstr01 = attstr01;
	}
	
	@Length(min=0, max=200, message="attstr02长度必须介于 0 和 200 之间")
	public String getAttstr02() {
		return attstr02;
	}

	public void setAttstr02(String attstr02) {
		this.attstr02 = attstr02;
	}
	
	@Length(min=0, max=200, message="attstr03长度必须介于 0 和 200 之间")
	public String getAttstr03() {
		return attstr03;
	}

	public void setAttstr03(String attstr03) {
		this.attstr03 = attstr03;
	}
	
	@Length(min=0, max=200, message="attstr04长度必须介于 0 和 200 之间")
	public String getAttstr04() {
		return attstr04;
	}

	public void setAttstr04(String attstr04) {
		this.attstr04 = attstr04;
	}
	
	
	@Length(min=0, max=200, message="attstr05长度必须介于 0 和 200 之间")
	public String getAttstr05() {
		return attstr05;
	}

	public void setAttstr05(String attstr05) {
		this.attstr05 = attstr05;
	}
	
	
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAttdate01() {
		return attdate01;
	}

	public void setAttdate01(Date attdate01) {
		this.attdate01 = attdate01;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAttdate02() {
		return attdate02;
	}

	public void setAttdate02(Date attdate02) {
		this.attdate02 = attdate02;
	}
	
	
	public String getDelFlagAlias() {
		if(StringUtils.isBlank(delFlagAlias)){
			return DictUtils.getDictLabel(delFlag, "del_flag", "");
		}
		return delFlagAlias;
	}

	public void setDelFlagAlias(String delFlagAlias) {
		this.delFlagAlias = delFlagAlias;
	}
	
	
	public String getConsignerName() {
		return consignerName;
	}

	
	public void setConsignerName(String consignerName) {
		this.consignerName = consignerName;
	}

	
	public String getConsigneeName() {
		return consigneeName;
	}

	
	public void setConsigneeName(String consigneeName) {
		this.consigneeName = consigneeName;
	}

	
	public String getOrderNo() {
		return orderNo;
	}

	
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	
	public String getAttstr03Alias() {
		if(StringUtils.isBlank(attstr03Alias)){
			attstr03Alias = DictUtils.getDictLabel(attstr03, "transport_status", "");
		}
		return attstr03Alias;
	}

	public void setAttstr03Alias(String attstr03Alias) {
		this.attstr03Alias = attstr03Alias;
	}

	public String getGoodsTypeAlias() {
		if(StringUtils.isBlank(goodsTypeAlias)){
			return DictUtils.getDictLabel(goodsType, "goods_type", "");
		}
		return goodsTypeAlias;
	}

	
	public void setGoodsTypeAlias(String goodsTypeAlias) {
		this.goodsTypeAlias = goodsTypeAlias;
	}
	
	
	public String getAttstr05Alias() {
		if(StringUtils.isBlank(attstr05Alias)){
			return DictUtils.getDictLabel(attstr05, "unit_type", "");
		}
		return attstr05Alias;
	}

	
	public void setAttstr05Alias(String attstr05Alias) {
		this.attstr05Alias = attstr05Alias;
	}

	
	public String getIsCheckRealWeigth() {
		return isCheckRealWeigth;
	}

	
	public void setIsCheckRealWeigth(String isCheckRealWeigth) {
		this.isCheckRealWeigth = isCheckRealWeigth;
	}
	
	public String getLogTitle() {
		return "物流订单明细";
	}


	public Office getCompany() {
		return company;
	}

	public void setCompany(Office company) {
		this.company = company;
	}

	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}

	public String getOfficeIds() {
		return officeIds;
	}

	public void setOfficeIds(String officeIds) {
		this.officeIds = officeIds;
	}

	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	public String getCustomer() {
		return customer;
	}

	public void setCustomer(String customer) {
		this.customer = customer;
	}

	public String getIsOverrun() {
		return isOverrun;
	}

	public void setIsOverrun(String isOverrun) {
		this.isOverrun = isOverrun;
	}

	public String getTextRate() {
		return textRate;
	}

	public void setTextRate(String textRate) {
		this.textRate = textRate;
	}

	public String getRateMoney() {
		return rateMoney;
	}

	public void setRateMoney(String rateMoney) {
		this.rateMoney = rateMoney;
	}

	public String getOutRateMoney() {
		return outRateMoney;
	}

	public void setOutRateMoney(String outRateMoney) {
		this.outRateMoney = outRateMoney;
	}

	public String getOtherFreight() {
		return otherFreight;
	}

	public void setOtherFreight(String otherFreight) {
		this.otherFreight = otherFreight;
	}

	public String getOtherType() {
		return otherType;
	}

	public void setOtherType(String otherType) {
		this.otherType = otherType;
	}

	public String getOtherTypeAlias() {
		if(StringUtils.isBlank(otherTypeAlias)){
			return DictUtils.getDictLabel(otherType, "otherfreight_type", "");
		}
		return otherTypeAlias;
	}

	public void setOtherTypeAlias(String otherTypeAlias) {
		this.otherTypeAlias = otherTypeAlias;
	}

	public String getRevicePrice() {
		return revicePrice;
	}

	public void setRevicePrice(String revicePrice) {
		this.revicePrice = revicePrice;
	}

	public String getTfreight() {
		return Tfreight;
	}

	public void setTfreight(String tfreight) {
		Tfreight = tfreight;
	}

	public Date getStartDateStart() {
		return startDateStart;
	}

	public void setStartDateStart(Date startDateStart) {
		this.startDateStart = startDateStart;
	}

	public Date getStartDateEnd() {
		return startDateEnd;
	}

	public void setStartDateEnd(Date startDateEnd) {
		this.startDateEnd = startDateEnd;
	}

	public Double getProfit() {
		return profit;
	}

	public void setProfit(Double profit) {
		this.profit = profit;
	}

	public String getCompanyCustomerName() {
		return companyCustomerName;
	}

	public void setCompanyCustomerName(String companyCustomerName) {
		this.companyCustomerName = companyCustomerName;
	}

	public String getCompanyCustomerNumber() {
		return companyCustomerNumber;
	}

	public void setCompanyCustomerNumber(String companyCustomerNumber) {
		this.companyCustomerNumber = companyCustomerNumber;
	}

	public String getCompanyCustomerName1() {
		return companyCustomerName1;
	}

	public void setCompanyCustomerName1(String companyCustomerName1) {
		this.companyCustomerName1 = companyCustomerName1;
	}

	public String getCompanyCustomerNumber1() {
		return companyCustomerNumber1;
	}

	public void setCompanyCustomerNumber1(String companyCustomerNumber1) {
		this.companyCustomerNumber1 = companyCustomerNumber1;
	}

	public String getContacts() {
		return contacts;
	}

	public void setContacts(String contacts) {
		this.contacts = contacts;
	}

	public String getContacts1() {
		return contacts1;
	}

	public void setContacts1(String contacts1) {
		this.contacts1 = contacts1;
	}

	public String getGoodsCode() {
		return goodsCode;
	}

	public void setGoodsCode(String goodsCode) {
		this.goodsCode = goodsCode;
	}

	public String getCompanyCustomer() {
		return companyCustomer;
	}

	public void setCompanyCustomer(String companyCustomer) {
		this.companyCustomer = companyCustomer;
	}

	public String getCompanyCustomee() {
		return companyCustomee;
	}

	public void setCompanyCustomee(String companyCustomee) {
		this.companyCustomee = companyCustomee;
	}

	public String getPriceUnit() {
		return priceUnit;
	}

	public void setPriceUnit(String priceUnit) {
		this.priceUnit = priceUnit;
	}


	public String getPriceUnitAlias() {
		if (StringUtils.isNotBlank(priceUnit)) {
			priceUnitAlias = DictUtils.getDictLabel(priceUnit, "denominated_unit", "");
		}else{
			priceUnitAlias = "吨公里";
		}
		return priceUnitAlias;
	}

	public void setPriceUnitAlias(String priceUnitAlias) {
		this.priceUnitAlias = priceUnitAlias;
	}

	public String getIsOverrunAlias() {
		if(StringUtils.isNotBlank(isOverrun)){
			isOverrunAlias = DictUtils.getDictLabel(isOverrun, "yes_no", "");
		}
		return isOverrunAlias;
	}

	public void setIsOverrunAlias(String isOverrunAlias) {
		this.isOverrunAlias = isOverrunAlias;
	}

	public String getIsOverload() {
		return isOverload;
	}

	public void setIsOverload(String isOverload) {
		this.isOverload = isOverload;
	}

	public String getTransportDetailCount() {
		return transportDetailCount;
	}

	public void setTransportDetailCount(String transportDetailCount) {
		this.transportDetailCount = transportDetailCount;
	}

	public String getConsignerUser() {
		return consignerUser;
	}

	public void setConsignerUser(String consignerUser) {
		this.consignerUser = consignerUser;
	}

	public String getPlatSupplierDocFile() {
		return platSupplierDocFile;
	}

	public void setPlatSupplierDocFile(String platSupplierDocFile) {
		this.platSupplierDocFile = platSupplierDocFile;
	}

	public String getPlatSupplierPdfFile() {
		return platSupplierPdfFile;
	}

	public void setPlatSupplierPdfFile(String platSupplierPdfFile) {
		this.platSupplierPdfFile = platSupplierPdfFile;
	}

	private String freight1;
	private String price1;

	public String getFreight1() {
		return freight1;
	}

	public void setFreight1(String freight1) {
		this.freight1 = freight1;
	}

	public String getPrice1() {
		return price1;
	}

	public void setPrice1(String price1) {
		this.price1 = price1;
	}

	public Double getRemainingGoodsWeight() {
		if(goodsWeight != null &&realGoodsWeight != null&&goodsWeight != 0 && realGoodsWeight != 0){
			if (goodsWeight.compareTo(realGoodsWeight) < 0) {
				return Double.valueOf("0");
			}
			return goodsWeight - realGoodsWeight;
		}
		if(remainingGoodsWeight == null){
			return goodsWeight;
		}
		return remainingGoodsWeight;
	}

	public void setRemainingGoodsWeight(Double remainingGoodsWeight) {
		this.remainingGoodsWeight = remainingGoodsWeight;
	}

	public Goods getGoods() {
		return goods;
	}

	public void setGoods(Goods goods) {
		this.goods = goods;
	}

	public String getAllPrice() {
		if(StringUtils.isNotBlank(allPrice) ){
			BigDecimal zcjjeInt = new BigDecimal(allPrice);
			return DateUtils.formatString(zcjjeInt,"#,###.##");
		}
		return allPrice;
	}

	public void setAllPrice(String allPrice) {
		this.allPrice = allPrice;
	}

	public String getVehicleRequire() {
		return vehicleRequire;
	}

	public void setVehicleRequire(String vehicleRequire) {
		this.vehicleRequire = vehicleRequire;
	}

	public String getCarClaim() {
		return carClaim;
	}

	public void setCarClaim(String carClaim) {
		this.carClaim = carClaim;
	}

	public String getCarLoad() {
		return carLoad;
	}

	public void setCarLoad(String carLoad) {
		this.carLoad = carLoad;
	}

	public String[] getIdArray() {
		return idArray;
	}

	public void setIdArray(String[] idArray) {
		this.idArray = idArray;
	}

	public String getPaid() {
		return paid;
	}

	public void setPaid(String paid) {
		this.paid = paid;
	}

	public String getInvoiceTotal() {
		return invoiceTotal;
	}

	public void setInvoiceTotal(String invoiceTotal) {
		this.invoiceTotal = invoiceTotal;
	}

	public String getApplyPaid() {
		return applyPaid;
	}

	public void setApplyPaid(String applyPaid) {
		this.applyPaid = applyPaid;
	}

	public String getBaseAccountBankAddr() {
		return baseAccountBankAddr;
	}

	public void setBaseAccountBankAddr(String baseAccountBankAddr) {
		this.baseAccountBankAddr = baseAccountBankAddr;
	}

	public String getBaseAccountNo() {
		return baseAccountNo;
	}

	public void setBaseAccountNo(String baseAccountNo) {
		this.baseAccountNo = baseAccountNo;
	}

	public String getUnifiedSocialCode() {
		return unifiedSocialCode;
	}

	public void setUnifiedSocialCode(String unifiedSocialCode) {
		this.unifiedSocialCode = unifiedSocialCode;
	}

	public String getBaseAccountName() {
		return baseAccountName;
	}

	public void setBaseAccountName(String baseAccountName) {
		this.baseAccountName = baseAccountName;
	}

	public String getSurplusPrice() {
		if(goodsWeight != null && freight != null ){
			if("1".equals(getPriceWay()) && StringUtils.isNotBlank(distance)){
				//吨公里 单价*运距*重量
				return (new BigDecimal(freight*Double.parseDouble(distance)*goodsWeight).setScale(2, RoundingMode.HALF_DOWN)).doubleValue() + "";
			}else if("2".equals(getPriceWay()) && StringUtils.isNotBlank(distance)){
				//整车 车数*单价
				return (new BigDecimal(freight*Double.parseDouble(carNum)).setScale(2, RoundingMode.HALF_DOWN)).doubleValue() + "";
			}else{
				//元/吨 单价*重量
				return (new BigDecimal(freight*Double.parseDouble("1")*goodsWeight).setScale(2, RoundingMode.HALF_DOWN)).doubleValue() + "";
			}
		}else{
			return revicePrice;
		}
	}

	public void setSurplusPrice(String surplusPrice) {
		this.surplusPrice = surplusPrice;
	}

	public String getPriceWay() {
		return priceWay;
	}

	public void setPriceWay(String priceWay) {
		this.priceWay = priceWay;
	}

	public String getPriceWayAlias() {
		if (StringUtils.isNotBlank(priceWay)) {
			priceWayAlias = DictUtils.getDictLabel(priceWay, "price_way", "");
		}else{
			priceWayAlias = "吨公里";
		}
		return priceWayAlias;
	}

	public void setPriceWayAlias(String priceWayAlias) {
		this.priceWayAlias = priceWayAlias;
	}

	public String getCarNum() {
		return carNum;
	}

	public void setCarNum(String carNum) {
		this.carNum = carNum;
	}
}